using System;
using System.Collections.Generic;
using System.Text;
using SchEdu.Framework.Logging;
using SchEdu.Framework.DataModel;
using SchEdu.Framework.Exceptions;

namespace SchEdu.Framework.Validators
{
    public abstract class Validator : IValidator
    {
        private Logger logger = new Logger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.ToString());

        protected Logger Logger
        {
            get { return logger; }
            set { logger = value; }
        }

        SchEduData schEduData;

        public SchEduData SchEduData
        {
            get { return schEduData; }
            set { schEduData = value; }
        }

        SchEduDataSet.SolutionRow solution;

        public SchEduDataSet.SolutionRow Solution
        {
            get { return solution; }
            set { solution = value; }
        }

        public Validator()
        {
        }

        public Validator(SchEduData schEduData)
        {
            this.schEduData = schEduData;
        }

        public Validator(SchEduData schEduData, SchEduDataSet.SolutionRow solution)
        {
            this.schEduData = schEduData;
            this.solution = solution;
        }

        #region IValidator Members

        public abstract void Validate();

        #endregion
    }
}
